from multiprocessing import Process
import time
import os


def test():
    print(f'我是子进程,我的PID是:{os.getpid()}, 我的父进程是:{os.getppid()}')
    time.sleep(1)


if __name__ == '__main__':
    start = time.time()  # 开始时间
    lst = []
    print('主程序开始执行:')
    # 创建五个子进程
    for i in range(1, 6):
        # 创建一个子进程对象
        pro = Process(target=test)
        # 启动进程
        pro.start()

        # 启动的进程添加到列表中
        lst.append(pro)

        # 阻塞主进程
        # pro.join()

    # 列表中每个成员都是一个进程
    for item in lst:
        item.join()  # 阻塞

    print(f'5个子进程一共花了:{time.time()-start}')
    print('主进程执行结束')  # 只是主进程中没有代码了 但并不是主进程结束

# 主进程要等到所有子进程结束之后才会结束
